Operadores lógicos

x | y <- Operador O

x & y <- OPerador Y

!x <- Negación

isTRUE(x) <- X es verdad?

== <- Comparación

<, < =, >, > = <- Mayor, Mayor o igual, Menor y Menor o igual.

%in% <- Permite determinar si uno o varios valores están contenidos en un vector.

Estructuras de control

Con el fin de buscar un mejor integración con el usuario R ofrece las estructuras de control if, else, ifelse

La construcción de las anteriores se presenta a continuación.

if (condicion){
  
  Instruccion_1
  Instruccion_2
  Instruccion_3
}

else {
  Instruccion_1
  Instruccion_2
}

La siguiente instrucción es usada cuando se quieren aplicar estructuras de control para procesos sencillos y cortos.

ifelse(Condición, Operación si cumple, Operación No cumple)
compra <- c(rep("s",4), rep("n",5))

ifelse(compra == "s", 0, 1)
## [1] 0 0 0 0 1 1 1 1 1

Ciclos

R nos proporciona la posibilidad de crear los siguientes tipos de ciclos. for, while, repeat

A continuación se presenta la estructura para la creación de cada uno de estos.

for (i in secuencia) {
  operación_1
  operación_2
  operación_3
  
}
vec <- vector()

for (i in 1:4) {
  vec[i] <- i
  return(vec)
}

while (condición) {
  operación_1
  operación_2
  operación_3
}
contrasena <- readline("Ingrese la contraseña")
con = 0

while (contrasena != "hola") {
  print("Contraseña incorrecta")
  contrasena <- readline("Ingrese la contraseña")
  con = con + 1
  if (con ==3) {
    break
  }
  
}

repeat {
  operación_1
  operación_2
  
  if(condición) break()
  
}
x <- 0
repeat {
print(x)
x = x+1
if (x == 3){
break
}
}
## [1] 0
## [1] 1
## [1] 2

Funciones

En R es posible crear funciones de la siguiente manera.

nombre_función <- function(parametro1, parametro2, .....){
  procedimiento_1
  procedimiento_2
  procedimiento_3
  
  return(resultado)
  
}
x <- 1:20

conteo <- function(vector){
  
  con <- length(vector)
  cat('El vector tiene', con, ' elementos')
  
}

conteo(x)
## El vector tiene 20  elementos

Funciones interesantes

Función which

La función which() detecta las posiciones donde el vector lógico cumple la condición dada:

v <- c(1,4,3,57,3,46)
v
## [1]  1  4  3 57  3 46
which( v == 3)
## [1] 3 5
which.max(v)
## [1] 4
which.min(v)
## [1] 1

Función case_when

La función case_when() pertenece al paquete gdata y permite asignar valores dado condiciones.

library(dplyr)

x <- 1:50

case_when(
  x %% 35 == 0 ~ "fizz buzz",
  x %% 5 == 0 ~ "fizz",
  x %% 7 == 0 ~ "buzz",
  TRUE ~ as.character(x)
)
##  [1] "1"         "2"         "3"         "4"         "fizz"     
##  [6] "6"         "buzz"      "8"         "9"         "fizz"     
## [11] "11"        "12"        "13"        "buzz"      "fizz"     
## [16] "16"        "17"        "18"        "19"        "fizz"     
## [21] "buzz"      "22"        "23"        "24"        "fizz"     
## [26] "26"        "27"        "buzz"      "29"        "fizz"     
## [31] "31"        "32"        "33"        "34"        "fizz buzz"
## [36] "36"        "37"        "38"        "39"        "fizz"     
## [41] "41"        "buzz"      "43"        "44"        "fizz"     
## [46] "46"        "47"        "48"        "buzz"      "fizz"

Ingresar y mostrar por consola

Se usa la función readline() para ingresar valores por consola.

x <- readline("nombre?")
## nombre?
x
## [1] ""

Se usan las funciones cat() y print() para imprimir valores por consola. La diferencia entres estas dos funciones es el tipo de objeto de devuelven.

class(print(paste("edad:",20)))
## [1] "edad: 20"
## [1] "character"
class(cat(paste("edad: ",20)))
## edad:  20
## [1] "NULL"

Referencias

  • Manual de R, Freddy H. Barajas